package com.chuxing.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.chuxing.domain.DTO.AddGroupMembersByAdminDTO;
import com.chuxing.domain.DTO.NotGroupMembersDTO;
import com.chuxing.domain.DTO.TGroupMembersListDTO;
import com.chuxing.domain.TClassMembers;
import com.chuxing.domain.TGroupMembers;
import com.chuxing.domain.VO.PageResultVO;
import jakarta.servlet.http.HttpServletResponse;

import java.util.List;

/**
 * 小组成员Service接口
 * 
 * @author 刘祺
 * @date 2025-01-11
 */
public interface ITGroupMembersService extends IService<TGroupMembers>
{
    /**
     * 查询小组成员
     * 
     * @param GroupMemberID 小组成员主键
     * @return 小组成员
     */
    public TGroupMembers selectTGroupmembersByGroupMemberID(Long GroupMemberID);

    /**
     * 查询小组成员列表
     *
     * @return 小组成员集合
     */
    public PageResultVO selectTGroupmembersList(TGroupMembersListDTO tGroupMembersListDTO);

    /**
     * 新增小组成员
     *
     * @return 结果
     */
    public int insertTGroupmembers(long groupID);

    /**
     * 修改小组成员
     * 
     * @param tGroupmembers 小组成员
     * @return 结果
     */
    public int updateTGroupmembers(TGroupMembers tGroupmembers);

    /**
     * 批量删除小组成员
     * 
     * @param GroupMemberIDs 需要删除的小组成员主键集合
     * @return 结果
     */
    public int deleteTGroupmembersByGroupMemberIDs(Long[] GroupMemberIDs);

    /**
     * 查询未分组小组成员
     * @param notGroupMembersDTO
     * @return
     */
    List<TClassMembers> selectNotGroupmembersList(NotGroupMembersDTO notGroupMembersDTO);

    /**
     * 管理员分配成员小组
     * @param addGroupMembersByAdminDTO
     */
    void AddGroupMembersByAdmin(AddGroupMembersByAdminDTO addGroupMembersByAdminDTO);

    void export(HttpServletResponse response, TGroupMembersListDTO tGroupMembersListDTO);
}
